﻿using System;
using System.Collections.Generic;


namespace Qetza.TeamFoundation.WorkItemQuery.Admin
{
    /// <summary>
    /// Represents a command parameter data.
    /// </summary>
    public class ParameterInfo
    {
        #region Properties

        /// <summary>
        /// Gets or sets the parameter command line argument name.
        /// </summary>
        /// <value>
        /// The command line argument name.
        /// </value>
        public string ArgumentName { get; set; }

        /// <summary>
        /// Gets or sets an enumeration of incompatible parameters.
        /// </summary>
        /// <value>
        /// An enumeration of incompatible parameters.
        /// </value>
        public IEnumerable<string> IncompatibleArguments { get; set; }

        /// <summary>
        /// Gets or sets the parameter help text.
        /// </summary>
        /// <value>
        /// The parameter help text.
        /// </value>
        public string HelpText { get; set; }

        /// <summary>
        /// Indicates whether the parameter is mandatory.
        /// </summary>
        /// <value>
        /// <b>true</b> if the parameter is mandatory; otherwise <b>false</b>.
        /// </value>
        public bool IsRequired { get; set; }

        /// <summary>
        /// Indicates whether the parameter is a flag and has no value.
        /// </summary>
        /// <value>
        /// <b>true</b> if the parameter is a flag; otherwise <b>false</b>.
        /// </value>
        public bool IsFlag { get; set; }

        /// <summary>
        /// Gets or sets the parameter name.
        /// </summary>
        /// <value>
        /// The parameter name.
        /// </value>
        public string Name { get; set; }

        /// <summary>
        /// Gets or sets an enumeration of allowed values for the parameter.
        /// </summary>
        /// <value>
        /// An enumeration of allowed values for the parameter.
        /// </value>
        public IEnumerable<string> AllowedValues { get; set; }

        #endregion
    }
}
